package com.peas.platform.module.icims.expenditure.expenses.dto;

import java.util.*;
import java.math.*;
import com.peas.platform.common.core.dto.BaseDto;
import lombok.Data;
import lombok.EqualsAndHashCode;

// 报账单明细附件
@Data
@EqualsAndHashCode(callSuper = false)
public class ExpenditureReimbursementItemFileDto extends BaseDto {

    // 报账单ID
    // （报账单表）外键
    private Long expenditureReimbursementId;

    // 报账单明细费用类型
    // 枚举取值:ExpenditureReimbursementFeetype
    private String expenditureReimbursementFeetype;

    // 报账单明细ID
    // 根据报账单明细费用费类型不同，关联相应的明细表ID
    private Long expenditureReimbursementItemId;

    // 报账费用类型附件ID
    // （报账费用类型附件）外键
    private Long expenditureFeetypeFileId;

    // 附件ID
    // （附件表）外键
    private Long attachmentId;

    // 附件名称
    private String attachmentName;

    // 附件URL
    private String attachmentUrl;

    // 附件大小
    private Long attachmentSize;

    // 附件上传时间
    private Date attachmentUpload;

    // 附件上传人
    private String attachmentUploader;

    // 是否发票
    // 枚举取值:CommonYesNo
    private String isInvoice;

    // 发票代码
    private String invoiceCode;

    // 发票号码
    private String invoiceNumber;

    // 开票日期
    private String invoiceDate;

    // 校验码
    private String invoiceValid;

    // 机器编号
    private String invoiceMachine;

    // 金额
    private BigDecimal invoiceAmount;

    // 税额
    private BigDecimal invoiceRate;

    // 价税合计
    private BigDecimal invoiceTotal;

    // 价税合计(大写)
    private String invoiceTotalText;

    // 购买方名称
    private String invoiceBuyerName;

    // 购买方纳税人识别号
    private String invoiceBuyer;

    // 购买方地址电话
    private String invoiceBuyerInfo;

    // 购买方开户行及账号
    private String invoiceBuyerBank;

    // 销售方名称
    private String invoiceSellerName;

    // 销售方纳税人识别号
    private String invoiceSeller;

    // 销售方地址电话
    private String invoiceSellerInfo;

    // 销售方开户行及账号
    private String invoiceSellerBank;

    // 收款人
    private String invoicePayee;

    // 复核
    private String invoiceApprover;

    // 开票人
    private String invoicePrinter;

    //Criteria
    private Date createTimeStart;
    private Date createTimeEnd;
    private Date updateTimeStart;
    private Date updateTimeEnd;
    private Date attachmentUploadStart;
    private Date attachmentUploadEnd;
}
